package com.pope.framework.triage.modular.entity;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.pope.framework.dict.modular.entity.DictAllergic;
import com.pope.framework.dict.modular.entity.DictComingWay;
import com.pope.framework.dict.modular.entity.DictEscort;
import com.pope.framework.dict.modular.entity.DictGreenChannel;
import com.pope.framework.dict.modular.entity.DictMedical;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import java.io.Serializable;
import java.util.List;

import javax.validation.constraints.Digits;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;

import org.hibernate.validator.constraints.Length;

/**
 * <p>
 * 患者信息表
 * </p>
 *
 * @author superpope
 * @since 2019-01-14
 */
@Data
@TableName("t_triage_patient_info")
@ApiModel(description= "患者信息")
public class PatientInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * WID
     */
    @TableId("ID")
    @ApiModelProperty(value = "患者信息主键",dataType="Integer",required=false)
    
    private Integer id;

    /**
     * 姓名
     */
    @TableField("NAME")
    @NotBlank(message="姓名不能为空")
    @ApiModelProperty(value = "姓名",dataType="String",required=true)
    @Length(max=40,message="姓名最大长度为40")
    private String name;

    /**
     * 身份证号
     */
    @TableField("ID_NUMBER")
    @NotBlank(message="身份证号不能为空")
    @ApiModelProperty(value = "身份证号",dataType="String",required=true)
    @Length(max=30,message="身份证号最大长度为30")
    private String idNumber;

    /**
     * 性别
     */
    @TableField("SEX")
    @ApiModelProperty(value = "性别",dataType="String",required=false)
    @Length(max=20,message="性别最大长度为20")
    private String sex;

    /**
     * 出生日期
     */
    @TableField("BIRTHDAY")
    
    @ApiModelProperty(value = "出生日期",dataType="String",required=false)
    @Length(max=10,message="出生日期最大长度为10")
    private String birthday;

    /**
     * 年龄
     */
    @TableField("AGE")
    @Max(value=200,message="年龄最大输入数值为200")
    @ApiModelProperty(value = "年龄",dataType="String",required=false)
    private Integer age;

    /**
     * 医疗卡号
     */
    @TableField("MEDICAL_CARD_NUMBER")
    @ApiModelProperty(value = "医疗卡号",dataType="String",required=false)
    @Length(max=40,message="医疗卡号最大长度为40")
    private String medicalCardNumber;

    /**
     * 联系人
     */
    @TableField("LINK_MAN")
    @ApiModelProperty(value = "联系人",dataType="String",required=false)
    @Length(max=40,message="联系人最大长度为40")
    private String linkMan;

    /**
     * 电话
     */
    @TableField("TELEPHONE")
    @ApiModelProperty(value = "电话",dataType="String",required=false)
    @Length(max=40,message="电话最大长度为40")
    private String telephone;

    /**
     * 工作单位
     */
    @TableField("WORK_UNIT")
    @ApiModelProperty(value = "工作单位",dataType="String",required=false)
    @Length(max=200,message="工作单位最大长度为200")
  
    private String workUnit;

    /**
     * 民族
     */
    @TableField("NATION")
    @ApiModelProperty(value = "民族",dataType="String",required=false)
    @Length(max=20,message="民族最大长度为20")
    private String nation;

    /**
     * 家庭住址
     */
    @TableField("HOME_ADDRESS")
    @ApiModelProperty(value = "家庭住址",dataType="String",required=false)
    @Length(max=200,message="家庭住址最大长度为200")
    private String homeAddress;

    /**
     * 以往病史备注
     */
    @TableField("MEDICAL_HISTOYR_REMARK")
    @ApiModelProperty(value = "以往病史备注",dataType="String",required=false)
    @Length(max=200,message="以往病史备注最大长度为200")
    private String medicalHistoyrRemark;

    /**
     * 过敏史备注
     */
    @TableField("ALLERGIC_HISTO_REMARK")
    @ApiModelProperty(value = "过敏史备注",dataType="String",required=false)
    @Length(max=200,message="过敏史备注最大长度为200")
    private String allergicHistoRemark;


    /**
     * 创建时间
     */
    @TableField(value = "CREATETIME",fill=FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间，新增修改无需填写,填写无效",dataType="String")
    private String createtime;


    /**
     * 修改时间
     */
    @TableField(value = "UPDATETIME",fill=FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "修改时间，新增修改无需填写,填写无效",dataType="String")
    private String updatetime;

    
    /**
     * 医院ID
     */
    @TableField("HOSPITAL_ID")
    @ApiModelProperty(value = "医院ID",dataType="String",required=true)
    @NotNull(message="医院ID不能为空")
    @Digits(integer=10,fraction=0)
    private Integer hospitalId;
    
    @TableField(value="CREATE_MAN",fill=FieldFill.INSERT)
    @ApiModelProperty(value = "创建人,可不用填写，填写无效",dataType="String")
    private String  createMan;
    
    /**
     * 操作员标识
     */
    @TableField(value="SITE_ID",fill=FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "租户字段,可不用填写，填写无效")
    private Integer siteId;
    /**
     * 操作员标识
     */
    @TableField(value="STAFF_ID",fill=FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "操作员标识,可不用填写，填写无效",dataType="Integer")
    private Integer staffId;
    /**
     * 备注
     */
    @TableField("REMARK")
    @ApiModelProperty(value = "备注",dataType="String")
    private String remark;
    

}
